home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Lib / parse / ad_getlocal.c next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  1.4 KB  |  74 lines

  1. /* ad_getlocal.c: get the local part of the address */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Lib/parse/RCS/ad_getlocal.c,v 6.0 1991/12/18 20:23:41 jpo Rel $";
  5. # endif
  6.  
  7. /*
  8.  * $Header: /xtel/pp/pp-beta/Lib/parse/RCS/ad_getlocal.c,v 6.0 1991/12/18 20:23:41 jpo Rel $
  9.  *
  10.  * $Log: ad_getlocal.c,v $
  11.  * Revision 6.0  1991/12/18  20:23:41  jpo
  12.  * Release 6.0
  13.  *
  14.  */
  15. #include "head.h"
  16. #include "adr.h"
  17.  
  18. extern char *rfc822_getlocal(), *x400_getlocal();
  19.  
  20. char    *ad_getlocal (addr, type, resp)
  21. char    *addr;
  22. int    type,
  23.     resp;
  24. {
  25.     if (type == AD_X400_TYPE)
  26.         return x400_getlocal(addr, resp);
  27.     else
  28.         return rfc822_getlocal(addr, resp);
  29. }    
  30.  
  31. /*   */
  32.  
  33. char    *rfc822_getlocal(addr, resp)
  34. char    *addr;
  35. int    resp;
  36. {
  37.     RP_Buf    rp;
  38.     char    *retstr;
  39.     ADDR    *ad = adr_new(addr, AD_822_TYPE, 1);
  40.     ad->ad_resp = resp;
  41.  
  42.     if (!rp_isbad (rfc822_parse(ad))
  43.         && !rp_isbad(rfc822_validate(ad, &rp))
  44.         && ad->aparse->r822_local)
  45.         retstr = strdup(ad->aparse->r822_local);
  46.     else
  47.         retstr = NULLCP;
  48.  
  49.     adr_free(ad);
  50.     return retstr;
  51. }
  52.  
  53. /*   */
  54.  
  55. char     *x400_getlocal(addr, resp)
  56. char    *addr;
  57. int    resp;
  58. {
  59.     RP_Buf    rp;
  60.     char    *retstr;
  61.     ADDR    *ad = adr_new(addr, AD_X400_TYPE, 1);
  62.     ad->ad_resp = resp;
  63.  
  64.     if (!rp_isbad(x400_parse(ad))
  65.         && !rp_isbad(x400_validate(ad, &rp))
  66.         && ad->aparse->x400_local)
  67.         retstr = strdup(ad->aparse->x400_local);
  68.     else
  69.         retstr = NULLCP;
  70.  
  71.     adr_free(ad);
  72.     return retstr;
  73. }
  74.